package com.iris.live.services.data.models;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;

/**
 * Created by Xin on 8/11/2016.
 */
@SuppressWarnings("JpaDataSourceORMInspection")
@Entity
@Table(name = "预约信息表", schema = "sg_lsh", catalog = "")
public class 预约信息表Model {
    private int 预约编号;
    private String 许可;
    private String 销售顾问;
    private Integer 顾客编号;
    private Date 预约时间;
    private String 预约目的;
    private String 当前状态;
    private String 取消原因;
    private String 更新账号;
    private Timestamp 更新时间;

    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "预约编号")
    public int get预约编号() {
        return 预约编号;
    }

    public void set预约编号(int 预约编号) {
        this.预约编号 = 预约编号;
    }

    @Basic
    @Column(name = "许可")
    public String get许可() {
        return 许可;
    }

    public void set许可(String 许可) {
        this.许可 = 许可;
    }

    @Basic
    @Column(name = "销售顾问")
    public String get销售顾问() {
        return 销售顾问;
    }

    public void set销售顾问(String 销售顾问) {
        this.销售顾问 = 销售顾问;
    }

    @Basic
    @Column(name = "顾客编号")
    public Integer get顾客编号() {
        return 顾客编号;
    }

    public void set顾客编号(Integer 顾客编号) {
        this.顾客编号 = 顾客编号;
    }

    @Basic
    @Column(name = "预约时间")
    public Date get预约时间() {
        return 预约时间;
    }

    public void set预约时间(Date 预约时间) {
        this.预约时间 = 预约时间;
    }

    @Basic
    @Column(name = "预约目的")
    public String get预约目的() {
        return 预约目的;
    }

    public void set预约目的(String 预约目的) {
        this.预约目的 = 预约目的;
    }

    @Basic
    @Column(name = "当前状态")
    public String get当前状态() {
        return 当前状态;
    }

    public void set当前状态(String 当前状态) {
        this.当前状态 = 当前状态;
    }

    @Basic
    @Column(name = "取消原因")
    public String get取消原因() {
        return 取消原因;
    }

    public void set取消原因(String 取消原因) {
        this.取消原因 = 取消原因;
    }

    @Basic
    @Column(name = "更新账号")
    public String get更新账号() {
        return 更新账号;
    }

    public void set更新账号(String 更新账号) {
        this.更新账号 = 更新账号;
    }

    @Basic
    @Column(name = "更新时间")
    public Timestamp get更新时间() {
        return 更新时间;
    }

    public void set更新时间(Timestamp 更新时间) {
        this.更新时间 = 更新时间;
    }

   @PrePersist
    @PreUpdate
    public void onPreUpdate() {
        this.set更新时间(new Timestamp(System.currentTimeMillis()));
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        预约信息表Model that = (预约信息表Model) o;

        if (预约编号 != that.预约编号) return false;
        if (许可 != null ? !许可.equals(that.许可) : that.许可 != null) return false;
        if (销售顾问 != null ? !销售顾问.equals(that.销售顾问) : that.销售顾问 != null) return false;
        if (顾客编号 != null ? !顾客编号.equals(that.顾客编号) : that.顾客编号 != null) return false;
        if (预约时间 != null ? !预约时间.equals(that.预约时间) : that.预约时间 != null) return false;
        if (预约目的 != null ? !预约目的.equals(that.预约目的) : that.预约目的 != null) return false;
        if (当前状态 != null ? !当前状态.equals(that.当前状态) : that.当前状态 != null) return false;
        if (取消原因 != null ? !取消原因.equals(that.取消原因) : that.取消原因 != null) return false;
        if (更新账号 != null ? !更新账号.equals(that.更新账号) : that.更新账号 != null) return false;
        if (更新时间 != null ? !更新时间.equals(that.更新时间) : that.更新时间 != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = 预约编号;
        result = 31 * result + (许可 != null ? 许可.hashCode() : 0);
        result = 31 * result + (销售顾问 != null ? 销售顾问.hashCode() : 0);
        result = 31 * result + (顾客编号 != null ? 顾客编号.hashCode() : 0);
        result = 31 * result + (预约时间 != null ? 预约时间.hashCode() : 0);
        result = 31 * result + (预约目的 != null ? 预约目的.hashCode() : 0);
        result = 31 * result + (当前状态 != null ? 当前状态.hashCode() : 0);
        result = 31 * result + (取消原因 != null ? 取消原因.hashCode() : 0);
        result = 31 * result + (更新账号 != null ? 更新账号.hashCode() : 0);
        result = 31 * result + (更新时间 != null ? 更新时间.hashCode() : 0);
        return result;
    }
}
